孪大师 CIMPro🛠 编辑器▶ 播放器📚 文档中心

孪大师 CIMPro 虚拟仿真数字样机编辑器 · Web3D 版技术方案

项目内容
版本V2.0(纯 Web3D / Three.js 路线)
日期2026-08-08
配套交付① CIMPro_Web3D数字样机编辑器.html(编辑器,可直接使用)② CIMPro_课件播放器.html(学员端播放器)③ 公网演示链接(见第 6 章)
与 V1.1 的关系V1.1 为 UE5 路线方案;本文档为完全基于 Web3D 的并行路线,不使用任何桌面引擎

1. 路线定位与选择理由

客户诉求变化:模型由客户 3ds Max 团队按规范预处理(轻量化、轴心、层级、删减冗余构件),编辑器不再承担 CAD 转换;发布形态要"直接分享链接",不需要 exe / 云渲染。

因此本路线:编辑器本身即 Web 应用(Three.js),编辑、预览、发布全在浏览器完成,课件 = glTF + JSON,学员点开链接即学。

维度UE5 路线(V1.1)Web3D 路线(V2.0,本文档)
保真度高(Nanite/光照/材质)中高(PBR 足够培训场景)
分发exe / 串流 / Web 包纯链接,零安装
开发成本高(引擎团队)低(前端团队即可)
模型管线FBX/glTF → UE 资产glTF 原生,编辑器与播放器同一格式
大模型承载千万级三角面建议 ≤ 100 万三角面(需轻量化)
适用重保真、涉密内网、VR快速铺量、远程培训、客户演示

两条路线共用同一套课件 JSON 契约(flows.disassembly / flows.assembly),未来可双端发行。

2. 模型交付规范(给客户 3ds Max 团队)

编辑器不做 CAD 转换,模型质量依赖预处理规范(这是项目成功的关键约束):

  1. 拆分粒度:按"可拆装构件"拆分独立对象,一个构件一个对象;
  1. 命名:对象名 = 工艺文件中的构件名(课件内显示名、JSON partName 全链路同源);
  1. 轴心点(最常见问题):每个构件的轴心必须在其几何中心或装配基准点——错误轴心会导致旋转/拆装动画"绕远处飞"。编辑器内置「📍 轴心」修正工具兜底(包围盒中心 / 底面中心 / 世界原点三件套,对标 Blender Set Origin);
  1. 层级:按总成建立空节点分组(编辑器大纲视图原样呈现,并可在编辑器内二次打组);
  1. 删减:删除内部不可见构件、装饰件;单课件建议 ≤ 100 万三角面;
  1. 格式:glTF/GLB(首选)或 FBX;Y-up、米制单位、PBR 材质贴图打包。

3. 编辑器功能清单(已全部在原型中实现)

3.1 Web 3D 编辑器通用能力(对标 three.js Editor / Blender / Figma 范式调研结论)

功能实现
大纲视图树状层级、复选多选、按组全选、双击重命名、显隐、删除、搜索过滤(Ctrl+F)、打组/解组(Ctrl+G)
变换三轴 Gizmo 移动/旋转/缩放(W/E/R),世界/局部坐标系切换(Q),吸附步进(0.25m/15°),编辑态拖动即改初始位
自由拖拽模式🖐 开关,开启后鼠标直接拖动构件(相机平面拖拽)
相机导航OrbitControls 环绕/平移/缩放,F 聚焦选中,🎥 复位
轴向指示 Gizmo视口右下角 ViewHelper,点击轴头直接切换视角
轴心修正包围盒中心 / 底面中心 / 世界原点
撤销/重做Ctrl+Z / Ctrl+Y(步骤快照栈)
自动保存30 秒间隔写入 localStorage + 手动导出 .vtproj 工程文件

3.2 课件业务能力(V2.2 增强)

3.3 播放器(学员端)

独立 player.html:欢迎页(课件名+学习目标)→ 演示/培训/考核三模式 × 拆装双流程 → 工具栏 → 提示气泡/语音 → 考核 HUD → 成绩报告。可「打开课件包」加载编辑器导出的 course.json + model.glb(也支持仅加载 JSON 配内置模型演示)。

4. 数据契约(cimpro-webcourse v2.0)

{ "format": "cimpro-webcourse", "version": "2.0", "name": "...", "model": "xxx.glb",
  "flows": { "disassembly": [{ "seq":1, "partName":"顶盖", "action":"disassemble",
               "axis":"y+", "dist":2.8, "dur":1.6, "tool":"行车吊具 + 吊带",
               "hint":"...", "hintColor":"#f5a524", "camera":{"pos":[...],"tgt":[...]} }],
             "assembly":  [ /* 拆卸逆序,action=assemble */ ] },
  "modes": { "demo": {...}, "train": {...}, "exam": { "durationMin":10, "orderErr":5, "toolErr":3, "hintCost":2, "pass":80 } },
  "ui": { "stepPanel":true, "toolBar":true, "partInfo":true, "timer":false, "theme":"#3d9dff" } }

5. 已知限制与后续迭代

限制说明迭代方向
超大模型Web 端建议 ≤100 万三角面DRACO/ meshopt 压缩、LOD、分块加载
撤销粒度当前覆盖步骤操作Command 模式全操作回退
节点流程图线性只读分支/条件节点
多人协同课程云端工程 + 权限
考核日志回传本地 CSV对接 LMS(xAPI/SCORM)
移动端桌面优先触控手势(双指平移/捏合缩放)

6. 演示入口


附录:V3.0 架构升级记录(2026-08-09)

  1. 层级完整导入:glTF/FBX 整树挂载,大纲递归渲染全部节点与层级(📂分支/🧩叶子/缩进),跳过骨骼节点;删除构件级联子构件。
  1. 专业化 UI 分区:左侧=大纲/材质/灯光/历史(美术与结构),右侧=步骤/引导/相机/界面/工具/考核(逻辑),底部=逻辑流程图/动画时间轴。
  1. PBR 材质工作站:MeshPhysicalMaterial 全通道(基础色/金属度/粗糙度/法线/AO/发光)+ 每通道贴图插槽(外部贴图导入替换,aoMap 自动补 uv1)+ 材质吸管(继承导入模型全部通道与贴图)+ 31 种分类预设(金属10/玻璃5/塑料5/混凝土5/发光5/标准1)。
  1. 另存为:File System Access API(showSaveFilePicker)真选存储位置,降级为下载导出。
  1. 历史记录:带标签与时刻的操作快照栈,点击任意记录回溯,可清空;与撤销/重做共享快照机制。
  1. 真实感渲染:EffectComposer + SSAOPass(环境光遮蔽)+ IBL 环境反射 + ACES 色调映射 + PCFSoft 阴影。
  1. 框选/全选:三维框选 + 大纲 Ctrl/Shift/Ctrl+A。
  1. 动画时间轴:剪辑单击/拖入轨道、关键帧菱形显示、拖动关键帧改时机(就地改 track.times,interpolant 引用生效)、播放/暂停/停止/scrub、工程保存 animEdits、glb 导出携带 animations。
  1. 测试基建:puppeteer-core + swiftshader 无头浏览器冒烟测试 22 项(真实模型:码垛机器人骨骼动画、配电箱 Sketchfab 层级)。

附录:V3.2 功能迭代记录(2026-08-09)

  1. 选择体系修复与清空:全选/框选后可一键删除所选(Delete 键批量优先);顶栏「🧹 清空」重置全部内容。
  1. 动画目录树:时间轴左侧按模型分组的动画库,剪辑单击/拖拽入轨,模型级播放/停止。
  1. 剖切系统:平面剖切(轴/位置/反向)+ 体剖切(中心/尺寸),范围限定(全部/仅勾选/排除勾选),基于 three.js clippingPlanes(对标 xeokit SectionPlane / BIMFACE 剖切盒调研结论)。
  1. 测量工具:距离/高度/角度/面积,吸附顶点/边中点/面中心(20px 屏幕阈值),面积双击结束(Newell 算法)。
  1. 内置模型库:默认 5 分类(建筑/机械/武器/植物/载具),分类可增删改名,模型上传/载入/删除,IndexedDB 持久化。
  1. 3D 高斯泼溅 PLY 导入:@mkkellogg/gaussian-splats-3d(DropInViewer + SceneFormat.Ply + sharedMemoryForWorkers:false 规避跨域隔离要求),失败自动降级 PLYLoader 点云;犰狳 7.9MB 真实 splat 模型实测通过。
  1. 时间轴增强:播放头/标尺自由拖拽寻址;倒放(负 timeScale)、循环开关、0.5×-4× 倍速。
  1. 竞品调研结论(xeokit/BIMFACE/ThingJS/Spline/PlayCanvas):剖切盒六面拖拽与单面 gizmo 两派、测量吸附 GPU picking、资产面板文件夹树+拖拽入场景——已纳入后续路线。

附录:V4.0 重大迭代记录(2026-08-09)

  1. 导入材质修正:自动修复导出器误标 BLEND 导致的整体透明(dabai 类 Mixamo 模型)、缺法线自动重建;资源注册表流程(导入→资源库→置入场景,对标 Babylon Assets Browser)。
  1. 物理相机:场景可创建多个相机对象(大纲管理),FOV/焦距(联动换算)/对焦距离/光圈/曝光补偿/DOF 景深(BokehPass 预览)。
  1. 实例复制:Ctrl+C/V、Shift+拖动手柄复制、批量线性/环形阵列复制;clone 共享几何体与材质(实例级内存共享)。
  1. 漫游模式:轨道/鸟瞰/第一人称(PointerLockControls+WASD/QE,Shift 加速)。
  1. OBJ/STL 导入:层级(OBJ 按 o/g 分组)保留;STL 单网格注册。
  1. 属性面板:构件(TRS 九项+材质入口)、灯光(含色温 K→RGB)、相机(全物理参数)统一 Inspector。
  1. 天空组件:物理大气(Sky addon)+ 太阳时刻/方位 + 天气系统(晴/多云/阴/雨/雪联动粒子与雾)+ GI 由天空实时重烘焙(PMREM)。
  1. 粒子系统:火焰/烟雾/爆炸/水流/雨/雪/落叶 7 预设,发射器全参数面板,单帧重生上限防卡顿,工程保存/快照撤销全支持。
  1. GIS 模块:真实经纬度(Web 墨卡托)+ Esri 全球影像 + AWS Terrarium 全球 DEM 高程,一键生成地形块;3D Tiles(tileset.json,b3dm 自解析)在线加载;OSGB 给出转换指引;LCC/LCC2 预留 LoaderRegistry 注册接口(可挂其域官方 SDK)。
  1. 时间轴缩放:➕/➖ 调节像素/秒刻度(30~600px/s)。
  1. 内置模型库:Khronos 官方 PBR 样例 5 款(受损头盔/复古音箱/水壶/灯笼/玩具车,全贴图 3.6-10MB),首启自动灌入 IndexedDB。
  1. 有声教程:TTS 解说 + 真实模型实操录屏合成,嵌入手册。

附录:V4.1 交付版迭代记录(2026-08-10)

组可选中整体移动/删除 · 发射器进大纲 · 粒子发射形状(点/盒/球/面)+方向+PNG贴图 · GIS默认接通全球影像+DEM · 资源库文件夹CRUD · 时间轴循环/倒放修复+关键帧动画制作(模型/灯光/相机/发射器的位置旋转缩放材质发光强度打帧) · 第一/三人称漫游修复 · 工具栏六组重排 · 清空彻底(含相机发射器) · 大纲拖拽改父子 · FBX(7500)/OBJ+MTL+贴图多文件导入实测 · 手册新窗口 · 版本号/官网链接 · 集成导出(iframe+URL参数) · 属性面板XYZ拖动调值 · 体积云+指数雾天气 · 全量真实模型回归17/17通过0报错。